/*
 *  NQueue.h
 *  Nova
 *
 *  Created by sunjun on 11-6-14.
 *  Copyright 2011 sunstdio. All rights reserved.
 *
 */
//////////////////////////////////////////////////////////////////////////

#ifndef __NQueue__
#define __NQueue__

//////////////////////////////////////////////////////////////////////////

#include <Nova.h>

//////////////////////////////////////////////////////////////////////////

#pragma pack (push,1)

typedef struct _QUEUE
{
	U32 size;
	U32 head;
	U32 tail;
}QUEUE;

#pragma pack (pop)

//////////////////////////////////////////////////////////////////////////

// write the data to the queue tail
extern BOOL NQueueWrite(QUEUE* q, const VOID* buf, U32 len);

// read the data from the queue head
extern BOOL NQueueRead(QUEUE* q, VOID* buf, U32* len);

//////////////////////////////////////////////////////////////////////////

#endif // __NQueue__

//////////////////////////////////////////////////////////////////////////